home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok15.lha / Seafarers_Manual / Source / C6P1.mod < prev    next >
Text File  |  1993-08-15  |  2KB  |  83 lines

  1. MODULE C6P1;  (* Chapter 6  Problem 1 *)
  2.               (* Size of variables *)
  3.  
  4.   (* From the book "Modula-2  A Seafarer's Manual and Shipyard Guide" *)
  5.   (* Page 190   adapted "Amiga M2Modula-2"   13 Mar 1988 *)
  6.  
  7. FROM InOut IMPORT WriteLn,
  8.                   WriteString,
  9.                   WriteCard;
  10. FROM SYSTEM IMPORT WORD,
  11.                    ADDRESS,
  12.                    BITSET;
  13.                                      
  14. VAR
  15.   Int : INTEGER;
  16.   Car : CARDINAL;
  17.   Boo : BOOLEAN;
  18.   Cha : CHAR;
  19.   Rea : REAL;
  20.   Bit : BITSET;
  21.   Poi : POINTER TO CARDINAL;
  22.   Pro : PROCEDURE (LONGCARD, INTEGER);
  23.   Wor : WORD;
  24.   Add : ADDRESS;
  25.   
  26. BEGIN
  27.   WriteLn;
  28.   WriteString ("Size of variables in bits is:");
  29.   WriteLn;
  30.   
  31.   Int := 0;
  32.   WriteString ("   Integer:            ");
  33.   WriteCard ( (SIZE (Int) * 8), 8);
  34.   WriteLn;
  35.   
  36.   Car := 0;
  37.   WriteString ("   Cardinal:           ");
  38.   WriteCard ( (SIZE (Car) * 8), 8);
  39.   WriteLn;
  40.   
  41.   Boo := TRUE;
  42.   WriteString ("   Boolean:            ");
  43.   WriteCard ( (SIZE (Boo) * 8), 8);
  44.   WriteLn;
  45.   
  46.   Cha := "A";
  47.   WriteString ("   Character:          ");
  48.   WriteCard ( (SIZE (Cha) * 8), 8);
  49.   WriteLn;
  50.   
  51.   Rea := 0.0;
  52.   WriteString ("   Real:               ");
  53.   WriteCard ( (SIZE (Rea) * 8), 8);
  54.   WriteLn;
  55.   
  56.   Bit := {0,1,2,3};
  57.   WriteString ("   BitSet:             ");
  58.   WriteCard ( (SIZE (Bit) * 8), 8);
  59.   WriteLn;
  60.   
  61.   WriteString ("   Pointer to Cardinal:");
  62.   WriteCard ( (SIZE (Poi) * 8), 8);
  63.   WriteLn;
  64.   
  65.   Pro := WriteCard;
  66.   WriteString ("   Procedure:          ");
  67.   WriteCard ( (SIZE (Pro) * 8), 8);
  68.   WriteLn;
  69.   
  70.   Wor := 5;
  71.   WriteString ("   Word:               ");
  72.   WriteCard ( (SIZE (Wor) * 8), 8);
  73.   WriteLn;
  74.   
  75.   Add := 500;
  76.   WriteString ("   Address:            ");
  77.   WriteCard ( (SIZE (Add) * 8), 8);
  78.   WriteLn;
  79.   
  80.   WriteLn; WriteLn;
  81.   
  82. END C6P1.mod
  83.